1
Taxonomy of Concurrency: Processes, I/O Multiplexing, and Threads
AI031 Lesson 12
00:00

In the realm of computer systems, application-level concurrency is the deliberate overlapping of logical control flows to boost performance and responsiveness. It is a functional abstraction: a program is partitioned into independent tasks that can be interleaved or executed in parallel.

1. The Concurrency Taxonomy

Developers generally choose between three fundamental mechanisms to manage these concurrent flows:

  • Processes: High isolation with separate address spaces; requires kernel-mediated IPC.
  • I/O Multiplexing: A single flow manually switching between "ready" events (state machines).
  • Threads: Lightweight flows sharing a single virtual address space for easy data exchange.
Concurrent Programs Sequential Parallel Key Rationales: Hide I/O Latency UI Responsiveness Multi-core Scaling Multi-client Servers

2. Logical vs. Physical Execution

While all parallel programs are concurrent, not all concurrent programs are parallel. Parallelism is the physical execution of flows on separate hardware cores. Concurrency is the logical design that allows such execution to happen.

main.py
TERMINAL bash — 80x24
> Ready. Click "Run" to execute.
>